package com.company.cloud.mall.modules.base.entity;

import java.math.BigDecimal;

import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;

import java.time.LocalDateTime;

import com.baomidou.mybatisplus.annotation.TableId;
import com.company.cloud.common.bean.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import io.swagger.annotations.ApiModelProperty;

/**
 * <p>
 * 2_订单信息表
 * </p>
 *
 * @author anros
 * @since 2020-08-19
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("mall_order_info")
public class OrderInfo extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 流水号
     */
    @ApiModelProperty(value = "流水号")
    @TableId(value = "sn", type = IdType.INPUT)
    private String sn;

    /**
     * 公司编号
     */
    @ApiModelProperty(value = "公司编号")
    private String companyNo;

    /**
     * 主公司编号
     */
    @ApiModelProperty(value = "主公司编号")
    private String mainCompanyNo;

    /**
     * 用户ID
     */
    @ApiModelProperty(value = "用户ID")
    private Integer userId;

    /**
     * 推荐码
     */
    @ApiModelProperty(value = "推荐码")
    private String referralCode;

    /**
     * 推荐人用户ID
     */
    @ApiModelProperty(value = "推荐人用户ID")
    private Integer referralUserId;

    /**
     * 订单分类
     */
    @ApiModelProperty(value = "订单分类")
    private String orderType;

    /**
     * 下单时间
     */
    @ApiModelProperty(value = "下单时间")
    private LocalDateTime orderDate;

    /**
     * 过期时间
     */
    @ApiModelProperty(value = "过期时间")
    private LocalDateTime orderExpire;

    /**
     * 订单金额（商品金额+税金+支付手续费+运费-）
     */
    @ApiModelProperty(value = "订单金额（商品金额+税金+支付手续费+运费-）")
    private BigDecimal fund;

    /**
     * 商品金额
     */
    @ApiModelProperty(value = "商品金额")
    private BigDecimal productFund;

    /**
     * 订单参数
     */
    @ApiModelProperty(value = "订单参数")
    private String orderParam;

    /**
     * 订单状态
     */
    @ApiModelProperty(value = "订单状态")
    private String status;

    /**
     * 是否已兑换积分
     */
    @ApiModelProperty(value = "是否已兑换积分")
    private String isExchangePoint;

    /**
     * 兑换积分
     */
    @ApiModelProperty(value = "兑换积分")
    private Integer exchangePoint;

    /**
     * 是否已赠送积分
     */
    @ApiModelProperty(value = "是否已赠送积分")
    private String isRewardPoint;

    /**
     * 赠送积分
     */
    @ApiModelProperty(value = "赠送积分")
    private Integer rewardPoint;

    /**
     * 是否已使用优惠码
     */
    @ApiModelProperty(value = "是否已使用优惠码")
    private String isUseCouponCode;

    /**
     * 优惠码
     */
    @ApiModelProperty(value = "优惠码")
    private String couponCode;

    /**
     * 优惠码折扣金额
     */
    @ApiModelProperty(value = "优惠码折扣金额")
    private BigDecimal couponDiscountFund;

    /**
     * 用户留言
     */
    @ApiModelProperty(value = "用户留言")
    private String userMemo;

    /**
     * 用户删除状态
     */
    @ApiModelProperty(value = "用户删除状态")
    private String userDelState;

    /**
     * 支付方式
     */
    @ApiModelProperty(value = "支付方式")
    private String paymentMethod;

    /**
     * 支付手续费
     */
    @ApiModelProperty(value = "支付手续费")
    private BigDecimal paymentFee;

    /**
     * 支付金额
     */
    @ApiModelProperty(value = "支付金额")
    private BigDecimal paymentFund;

    /**
     * 支付状态
     */
    @ApiModelProperty(value = "支付状态")
    private String paymentState;

    /**
     * 支付时间
     */
    @ApiModelProperty(value = "支付时间")
    private LocalDateTime payDate;

    /**
     * 配送方式
     */
    @ApiModelProperty(value = "配送方式")
    private String shippingMethod;

    /**
     * 运费
     */
    @ApiModelProperty(value = "运费")
    private BigDecimal freight;

    /**
     * 收货人姓名
     */
    @ApiModelProperty(value = "收货人姓名")
    private String consigneeName;

    /**
     * 收货人电话
     */
    @ApiModelProperty(value = "收货人电话")
    private String consigneePhone;

    /**
     * 收货人省份
     */
    @ApiModelProperty(value = "收货人省份")
    private String consigneeProvince;

    /**
     * 收货人城市
     */
    @ApiModelProperty(value = "收货人城市")
    private String consigneeCity;

    /**
     * 收货人地区
     */
    @ApiModelProperty(value = "收货人地区")
    private String consigneeRegion;

    /**
     * 收货人街道
     */
    @ApiModelProperty(value = "收货人街道")
    private String consigneeStreet;

    /**
     * 收货人详细地址
     */
    @ApiModelProperty(value = "收货人详细地址")
    private String consigneeAddr;

    /**
     * 是否需要发票
     */
    @ApiModelProperty(value = "是否需要发票")
    private String isInvoice;

    /**
     * 发票类型
     */
    @ApiModelProperty(value = "发票类型")
    private String invoiceType;

    /**
     * 发票抬头
     */
    @ApiModelProperty(value = "发票抬头")
    private String invoiceTitle;

    /**
     * 发票税号
     */
    @ApiModelProperty(value = "发票税号")
    private String invoiceTaxNo;

    /**
     * 发票内容
     */
    @ApiModelProperty(value = "发票内容")
    private String invoiceContent;

    /**
     * 是否已分配库存
     */
    @ApiModelProperty(value = "是否已分配库存")
    private String isAllocatedStock;

    /**
     * 退款金额
     */
    @ApiModelProperty(value = "退款金额")
    private BigDecimal refundFund;

    /**
     * 审核时间
     */
    @ApiModelProperty(value = "审核时间")
    private LocalDateTime checkDate;

    /**
     * 发货时间
     */
    @ApiModelProperty(value = "发货时间")
    private LocalDateTime shippingDate;

    /**
     * 收货时间
     */
    @ApiModelProperty(value = "收货时间")
    private LocalDateTime receivingDate;

    /**
     * 完成时间
     */
    @ApiModelProperty(value = "完成时间")
    private LocalDateTime completeDate;

    /**
     * 关闭时间
     */
    @ApiModelProperty(value = "关闭时间")
    private LocalDateTime closeDate;

    /**
     * 订单处理时间
     */
    @ApiModelProperty(value = "订单处理时间")
    private LocalDateTime handleDate;

    /**
     * 订单处理人
     */
    @ApiModelProperty(value = "订单处理人")
    private Integer handleUserId;

    /**
     * 订单处理留言
     */
    @ApiModelProperty(value = "订单处理留言")
    private String handleMemo;

    /**
     * 使用人姓名
     */
    @ApiModelProperty(value = "使用人姓名")
    private String useUserName;

    /**
     * 使用人手机号码
     */
    @ApiModelProperty(value = "使用人手机号码")
    private String useUserMobile;

    /**
     * 兑换码
     */
    @ApiModelProperty(value = "兑换码")
    private String exchangeCode;

    /**
     * 是否有分销商品
     */
    @ApiModelProperty(value = "是否有分销商品")
    private String isDisProduct;

    /**
     * 创建人
     */
    @ApiModelProperty(value = "创建人")
    private Integer cman;

    /**
     * 修改人
     */
    @ApiModelProperty(value = "修改人")
    private Integer eman;

    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间")
    private LocalDateTime cdt;

    /**
     * 修改时间
     */
    @ApiModelProperty(value = "修改时间")
    private LocalDateTime edt;

    /**
     * 创建人IP
     */
    @ApiModelProperty(value = "创建人IP")
    private String cip;

    /**
     * 修改人IP
     */
    @ApiModelProperty(value = "修改人IP")
    private String eip;

    /**
     * 数据状态
     */
    @ApiModelProperty(value = "数据状态")
    private String rowsState;


}
